#ifndef SGLMACROS_H
#define SGLMACROS_H

	#define DLL 0
	#define VERBOSE 1
	#define WINDOWS 0
	#define WINDOWS_INCLUDE 0
	#define SGL_VERSION "1.0-1"

	#if WINDOWS_INCLUDE
		#include <windows.h>
	#endif

	#if WINDOWS
#define start() int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nShowCmd)
	#else
#define start() int main(int argc, char * argv[])
	#endif

	#if DLL
		#define declareSGLfun(name) __declspec(dllexport) name
	#else
		#define declareSGLfun(name) name
	#endif

	#if VERBOSE
		#define DEBUG(lvl, msg) cout << "[" << lvl << "] [" << msg << "]" << endl;
	#else
		#define DEBUG(lvl, msg)
	#endif

namespace SGLEngine {



	struct SGLSettings {
		
		enum irr::video::E_DRIVER_TYPE DriverType;
		irr::core::dimension2d<irr::u32> Resolution;
		int Bits;
		bool Fullscreen;
		bool Stencilbuffer;
		bool Vsync;
		//SGLEvent


		SGLSettings(): DriverType(irr::video::EDT_SOFTWARE), Resolution(800, 600), Bits(16), Fullscreen(false), Stencilbuffer(false), Vsync(false) {};
	};

	struct SGLSceneSettings {
		bool usebackBuffer;
		bool usezBuffer;
		irr::video::SColor color;
		SGLSceneSettings() : usebackBuffer(true), usezBuffer(true), color(irr::video::SColor(255, 0, 0, 0)) {};
	};

}



#endif